package com.tfswx.fljdmxyy.service;

import com.tfswx.fljdmxyy.dto.rwpz.*;
import com.tfswx.fljdmxyy.query.rwpz.RwpzQueryParam;
import com.tfswx.fljdmxyy.query.rwpz.RwpzQueryResult;
import com.tfswx.fljdmxyy.query.rwrz.RwrzQueryParam;
import com.tfswx.fljdmxyy.query.rwrz.RwrzQueryResult;
import com.tfswx.newbie.boot.starter.page.PageParam;
import com.tfswx.newbie.boot.starter.page.PageResult;

/**
 * 任务管理服务
 *
 * @Author 陈文佳
 * @Date 2023/03/24
 */
public interface RwglService {
    /**
     * 新增任务配置
     *
     * @param inputDTO 新增任务配置入参
     * @return RwpzAddOutputDTO 新增任务配置出参
     */
    RwpzAddOutputDTO addRwpz(RwpzAddInputDTO inputDTO);

    /**
     * 修改任务配置
     *
     * @param inputDTO 修改任务配置入参
     * @return Boolean 修改任务配置出参
     */
    Boolean updateRwpz(RwpzUpdateInputDTO inputDTO);

    /**
     * 获取任务配置
     *
     * @param inputDTO 获取任务配置入参
     * @return RwpzGetOutputDTO 获取任务配置出参
     */
    RwpzGetOutputDTO getRwpz(RwpzGetInputDTO inputDTO);

    /**
     * 删除任务配置
     *
     * @param inputDTO 删除任务配置入参
     * @return Boolean 删除任务配置出参
     */
    Boolean deleteRwpz(RwpzDeleteInputDTO inputDTO);

    /**
     * 分页获取任务配置列表
     *
     * @param param 分页获取任务配置列表入参
     * @return PageResult<RwpzQueryResult> 分页获取任务配置列表出参
     */
    PageResult<RwpzQueryResult> queryRwpz(PageParam<RwpzQueryParam> param);

    /**
     * 手动执行任务
     *
     * @param inputDTO 手动执行任务入参
     * @return Boolean 手动执行任务出参
     */
    Boolean executeRw(RwpzGetInputDTO inputDTO);

    /**
     * 清空任务日志
     *
     * @return Boolean 清空任务日志出参
     */
    Boolean clearRwrz();

    /**
     * 分页获取任务日志列表
     *
     * @param param 分页获取任务日志列表入参
     * @return PageResult<RwrzQueryResult> 分页获取任务日志列表出参
     */
    PageResult<RwrzQueryResult> queryRwrz(PageParam<RwrzQueryParam> param);
}
